#!/bin/bash
# 从本地目录查找 hosts 文件，提取 IP 并推送公钥

# 查找 hosts 文件（优先当前目录）
HOSTS_FILE=$(find . -type f -name "hosts" | head -n 1)

if [ -z "$HOSTS_FILE" ]; then
    echo "❌ 当前目录未找到 hosts 文件"
    exit 1
fi

echo "✅ 使用的 hosts 文件: $HOSTS_FILE"

# 确认公钥是否存在
PUBKEY=~/.ssh/id_rsa.pub
if [ ! -f "$PUBKEY" ]; then
    echo "⚠️ 未找到 $PUBKEY，请先运行 ssh-keygen 生成密钥对"
    exit 1
fi

# 提取唯一 IP
IPS=$(awk '/^[0-9]+\./ {print $1}' "$HOSTS_FILE" | sort -u)

if [ -z "$IPS" ]; then
    echo "❌ 没有在 $HOSTS_FILE 中找到任何 IP 地址"
    exit 1
fi

# 循环推送公钥
for ip in $IPS; do
    echo ">>> 正在推送公钥到 $ip"
    ssh-copy-id -i "$PUBKEY" root@"$ip"
done

echo "✅ 公钥推送完成！"

